#include "phys_body.h"
#include <string>
#include <SFML/Graphics.hpp>

class Ship : public PhysicsBody
{
private:
    std::string shipName;
    sf::Sprite shipSprite;
    sf::Texture shipTexture;
protected:
    bool shipForwardThrustOn;
    bool shipReverseThrustOn;
    bool shipLeftThrustOn;
    bool shipRightThrustOn;
    bool shipLeftStrafeThrustOn;
    bool shipRightStrafeThrustOn;
    

public:
    Ship(std::string shipName, std::string spriteFilename, b2World* gameworld);
    sf::Sprite getSprite();
    b2Vec2 getPosition();
    void setPosition(b2Vec2 pos);
    float getAngle();
    void setRotation(b2Vec2 rot);
    void applyForwardThrust();
    void cancelForwardThrust();
    void applyReverseThrust();
    void cancelReverseThrust();
    void applyLeftThrust();
    void cancelLeftThrust();
    void applyRightThrust();
    void cancelRightThrust();
    void applyLeftStrafeThrust();
    void cancelLeftStrafeThrust();
    void applyRightStrafeThrust();
    void cancelRightStrafeThrust();
    void update();

};
